package annotation;

import java.lang.annotation.*;

/**
 * @ClassName Test
 * @Author 刘正星
 * @Date 2021/6/20 下午12:34
 * @Description
 */

@SuppressWarnings("all")
public class Test {

   /* java 自带注解
        @Override 重写
        @SuppressWarnings("all") 正压警告
        @Deprecated 废弃不推荐使用
        */

    @Override
    public String toString() {
        return super.toString();
    }
    @Deprecated
    public static String test(){
        return "ddd";
    }

    @MyAnnotation(id = 1)
    public String testMyAnnotation(){
        return "test";
    }


    public static void main(String[] args) {
        test();
        Integer a = 1;
        Integer b =2;
        System.out.println(a.compareTo(b));

    }
}

//自定义注解

//元注解是用于定义注解的注解，包括@Retention、@Target、@Inherited、@Documented、@Repeatable 等。
//元注解也是Java自带的标准注解，只不过用于修饰注解，比较特殊。

@Target({ElementType.TYPE,ElementType.METHOD})//元注解，作用预
@Retention(RetentionPolicy.RUNTIME)  //何时
@interface MyAnnotation{

    /**
     * 参数，带有默认值
     * @return
     */

    String name() default "test";

    /**
     * 不带默认值，参数名是value的话，使用注解的时候括号里可以不写参数名= 例如 这里需要写 id =
     * @return
     */


    int id ();

}
